/**
 * 校验用户名是否合规的方法
 * @param userName 用户输入的用户名
 * @returns 是否合规
 */
function validateUserName(userName: string) {
    if (userName.length >= 2 && userName.length <= 20) {
        return true;
    } else {
        return false;
    }
}

/**
 * 校验用户密码强度的方法
 * @param password 用户设置的密码
 * @returns 密码强度情况
 */
function checkPasswordStrength(password: string) {
    // 正则表达式模式
    if (password.length < 8 || password.length > 16) {
        return false;
    }

    var passwordReg = /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%^&*,._]).{8,16}$/;

    // 检查密码是否符合模式
    if (passwordReg.test(password)) {
        return true; // 强密码
    } else {
        return false; // 弱密码
    }
}

/**
 * 校验用户输入的手机号码是否合规的方法
 * @param phoneNumber 用户输入的手机号码
 * @returns 校验结果
 */
function validatePhoneNumber(phoneNumber: string) {
    // 正则表达式模式
    var pattern = /^1[345789]\d{9}$/;

    // 检查电话号码是否符合模式
    if (pattern.test(phoneNumber)) {
        return true; // 是中国大陆的电话号码
    } else {
        return false; // 不是中国大陆的电话号码
    }

    // // 移动号码:
    // var mobilePattern = /^134[0-8]\d{7}$|^(?:13[5-9]|147|15[0-27-9]|178|1703|1705|1706|18[2-478])\d{7,8}$/;
    // // 联通号码:
    // var unicomPattern = /^(?:13[0-2]|145|15[56]|176|1704|1707|1708|1709|171|18[56])\d{7,8}|$/;
    // // 电信号码：
    // var telecomPattern = /^(?:133|153|1700|1701|1702|177|173|18[019])\d{7,8}$/;
}

/**
 * 校验用户输入的邮箱是否合规的方法
 * @param email 用户输入的邮箱
 * @returns 校验结果
 */
function validateEmail(email: string) {
    // 正则表达式模式
    var pattern = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;

    // 检查邮箱是否符合模式
    if (pattern.test(email)) {
        return true; // 邮箱格式正确
    } else {
        return false; // 邮箱格式错误
    }
}

export {
    validateUserName,
    checkPasswordStrength,
    validatePhoneNumber,
    validateEmail
};